$(document).ready(function() {
   
    $('#ticket_number').numeric();
    
    $('#quantity').numeric();
    $('#currentTotal').numeric();
    $('#totalGeneral').numeric();
    $('#totalGeneral').text(0);

    //    Seteamos el numero de ticket
    createTicket();
    showCash();
    
    $("#quantity").keyup(function() {
        var totalParcial = $("#currentPrice").val() * $('#quantity').val();
        $("#currentTotal").val(totalParcial.toFixed(2)) ;
    })
    
    
    
    $(".rowPromo").click(function(){
        
        var id = $(this).attr("id");
            
        promotion_id = $.trim($('#tabla tbody tr:eq('+id+') td:eq(0)').text());
        var promo = $('#tabla tbody tr:eq('+id+') td:eq(1)').text();
        var precio = $('#tabla tbody tr:eq('+id+') td:eq(2)').text();

        //            Seteo campos
        $('#currentPromo').val($.trim(promo));
        $('#currentPrice').val($.trim(precio));
        $('#currentTotal').val($.trim(precio));
        $('#quantity').val(1).focus().select();
    
    });

        
   
    $(".rowPromo").mouseenter(function(){
        $(this).css('background-color','##0075ba');
        $(this).css('color','white');
        $(this).css('cursor','pointer');
    });
    $(".rowPromo").mouseleave(function(){
        $(this).css('background-color','#F4F4F4');
        $(this).css('color','#0075ba');
    });
    
    
    $(document).keydown(function(tecla){
        //      Cuando presiona Enter 13
        //      Cuando presiona Barra 32
        if (tecla.keyCode == 65) {  
            
            if($('#quantity').val() > 0 ) {
                if(($('#currentPromo').val().length >=1 ) && ($('#currentPrice').val().length  >=1 )&& 
                    ($('#currentTotal').val().length >=1 ) &&  ($('#quantity').val().length >=1 ) )  {
                    addRow();
                }
            }else{
                showMsg();
            //        $dialogError.dialog('open');
            }
        } 
    });
  
  
    $("#añadir").click(function(){

        if(($('#currentPromo').val().length >=1 ) && ($('#currentPrice').val().length  >=1 ) && 
            ($('#currentTotal').val() >=1 ) &&  ($('#quantity').val() >=1 ) )  {
            addRow();
        }
      
    });
    
    $("#limpiar").click(function(){
        resetData();      
    });

  
    function addRow(){
        
        var totalGeneral =parseFloat($('#totalGeneral').text()) + parseFloat($('#currentTotal').val());
        $('#totalGeneral').text(totalGeneral.toFixed(2));
        $('#totalMenu').text(totalGeneral.toFixed(2));
        
        if( jQuery.inArray(promotion_id,promotions) >= 0 ){
            
            var index = jQuery.inArray(promotion_id,promotions);
            
            index++;
            
            //           sumo la cantidad actual mas la cantidad nueva 
            var quantity = parseInt( $('#quantity').val()) + parseInt($('#tablaFactura tbody tr:eq('+index+') td:eq(1)').text());
            //          
            //          sumo la total actual mas la total nueva 
            var totalNewPromo = parseFloat($('#currentTotal').val()) + parseFloat( $('#tablaFactura tbody tr:eq('+index+') td:eq(3)').text() );
            
            $('#tablaFactura tbody tr:eq('+index+') td:eq(1)').text(quantity);
            $('#tablaFactura tbody tr:eq('+index+') td:eq(3)').text(totalNewPromo.toFixed(2));
           
           
           
        }else{

            //            agrego historico de promos elegidas
            promotions.push(promotion_id);
            var classRandom = Math.floor(Math.random()*101);   
          
        
            //    obtengo el total de la linea
            var totalLinea = $('#currentTotal').val();
        
            $('#tablaFactura > tbody:last').append('<tr id= "'+ promotion_id +'" class="dataRow '+ classRandom +' "><td>'+$('#currentPromo').val()+'</td><td>'+parseInt($('#quantity').val())+'</td>\n\
   <td>'+$('#currentPrice').val()+'</td> <td>'+totalLinea+'</td>\n\
    <td id="quitar" class="quitar" onclick=\"deleteRow('+promotion_id+','+classRandom+', '+totalLinea+' )\">Quitar</td></tr>');
        }
        

        //    Guardo la linea en Array
        if (typeof(linePromotion[promotion_id]) === 'undefined'){
            linePromotion[promotion_id] = (promotion_id + ':' + $('#quantity').val() + ':' + $('#currentTotal').val());
        }else{
            
            //            Si el cajero elige una promo repetida, suma los valores a los datos de anteriores.
            //            debo convertir la cadena a arreglo, sumarlo y luego actualizar el arreglo

            var lineCadena = linePromotion[promotion_id].split(':')
            var quantityLine = parseInt(lineCadena[1]) + parseInt($('#quantity').val());
            var totalLine = parseFloat(lineCadena[2]) + parseFloat($('#currentTotal').val());

            linePromotion[promotion_id] = (promotion_id + ':' + quantityLine + ':' + totalLine);

        }
    }
    
    
});

function deleteRow(id, classRandom, totalLinea){
    
    //    Busco en el Resumen valores para actualizar el precio
    var posCantidad = promotions.indexOf(id.toString());
    //    posCantidad = parseInt(posCantidad);
    posCantidad++;

    //Obtengo Cantidad y precio Unitario
    var quantity = $('#tablaFactura tbody tr:eq('+posCantidad+') td:eq(1)').text();
    var unitPrice = $('#tablaFactura tbody tr:eq('+posCantidad+') td:eq(2)').text();
    
    //    Resto:  Total Actual - (precio unitario * cantidad)
    var totalGeneral = parseFloat($('#totalGeneral').text()) - (parseFloat(quantity) * parseFloat(unitPrice));
    $('#totalGeneral').text(totalGeneral.toFixed(2));
    $('#totalMenu').text(totalGeneral.toFixed(2));
    
    
    //  Borro historico de promociones
    var pos = promotions.indexOf(id.toString());
    promotions.splice(pos, 1 );

    //  Borro linea de promociones elegidas
//    linePromotion.splice( id, 1 );
    delete linePromotion[id]
    
    //  Borro la linea de la tabla
    $('.' + classRandom).remove().fadeOut(800);
    


} 

function resetData(){

    //        Reseteo Formulario
    $('#SaleAddForm').each (function(){
        this.reset();
    });

    //        Reseteo Tabla de Factura y Array de Promociones
    $(".dataRow").detach();
    $("#totalMenu").text(0);
    $("#totalGeneral").text(0);
    $("#currentPromo").val('');
    $("#quantity").val('');
    $("#currentPrice").val('');
    $("#currentTotal").val('');
    linePromotion = new Array()
    promotions = new Array()
    createTicket();
    showCash();
      
};


